package com.ljf.authority.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ljf.common.model.BasisModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

/**
 * API列表定义对象  authority_base_api_tabulation
 *
 * @author LJF
 * @since 2024-10-24
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("API列表定义")
@EqualsAndHashCode(callSuper = true)
@TableName("authority_base_api_tabulation")
public class AuthorityBaseApiTabulation extends BasisModel {

	private static final long serialVersionUID = 1L;

	/**
	 * Java类型: Long
	 * 数据库类型: bigint
	 * 注释: ID
	 * {@link AuthorityBaseApiTabulation#COL_ID}
	 */

	@JsonProperty("id")
	@ApiModelProperty(value = "ID")
	@TableId(value="id", type= IdType.AUTO)
	private Long id;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(10)
	 * 注释: 归属服务
	 * {@link AuthorityBaseApiTabulation#COL_BELONG_SERVICE}
	 */
	@TableField("belong_service")
	@JsonProperty("belongService")
	@ApiModelProperty(value = "归属服务")
	private String belongService;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(50)
	 * 注释: 编码
	 * {@link AuthorityBaseApiTabulation#COL_CODE}
	 */
	@TableField("code")
	@JsonProperty("code")
	@ApiModelProperty(value = "编码")
	private String code;

	/**
	 * Java类型: String
	 * 数据库类型: varchar(50)
	 * 注释: URL地址
	 * {@link AuthorityBaseApiTabulation#COL_URL}
	 */
	@TableField("url")
	@JsonProperty("url")
	@ApiModelProperty(value = "URL地址")
	private String url;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 请求方法(1:POST;2:DELETE;3:PUT;4:GET)
	 * {@link AuthorityBaseApiTabulation#COL_METHOD}
	 * {@link com.ljf.authority.enums.AuthorityBaseApiTabulationMethodEnum}
	 */
	@TableField("method")
	@JsonProperty("method")
	@ApiModelProperty(value = "请求方法")
	private Integer method;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 权限类型(1:不鉴权;2:鉴权)
	 * {@link AuthorityBaseApiTabulation#COL_PERMISSION_TYPE}
	 * {@link com.ljf.authority.enums.AuthorityBaseApiTabulationPermissionTypeEnum}
	 */
	@TableField("permission_type")
	@JsonProperty("permissionType")
	@ApiModelProperty(value = "权限类型")
	private Integer permissionType;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint(1)
	 * 注释: 同步类型(1:不同步;2:同步)
	 * {@link AuthorityBaseApiTabulation#COL_SYNCHRONIZATION_TYPE}
	 * {@link com.ljf.authority.enums.AuthorityBaseApiTabulationSynchronizationTypeEnum}
	 */
	@TableField("synchronization_type")
	@JsonProperty("synchronizationType")
	@ApiModelProperty(value = "同步类型")
	private Integer synchronizationType;

	/**
	 * Java类型: Integer
	 * 数据库类型: tinyint
	 * 注释: 激活状态(1:未激活;2:已激活)
	 * {@link AuthorityBaseApiTabulation#COL_ACTIVATION}
	 * {@link com.ljf.common.enums.ActivationEnum}
	 */
	@TableField("activation")
	@JsonProperty("activation")
	@ApiModelProperty(value = "激活状态")
	private Integer activation;


	/**
	 * ID
	 * {@link AuthorityBaseApiTabulation#id}
	 */
	public static final String COL_ID = "id";
	/**
	 * 归属服务
	 * {@link AuthorityBaseApiTabulation#belongService}
	 */
	public static final String COL_BELONG_SERVICE = "belong_service";
	/**
	 * 编码
	 * {@link AuthorityBaseApiTabulation#code}
	 */
	public static final String COL_CODE = "code";
	/**
	 * URL地址
	 * {@link AuthorityBaseApiTabulation#url}
	 */
	public static final String COL_URL = "url";
	/**
	 * 请求方法(1:POST;2:DELETE;3:PUT;4:GET)
	 * {@link AuthorityBaseApiTabulation#method}
	 */
	public static final String COL_METHOD = "method";
	/**
	 * 权限类型(1:不鉴权;2:鉴权)
	 * {@link AuthorityBaseApiTabulation#permissionType}
	 */
	public static final String COL_PERMISSION_TYPE = "permission_type";
	/**
	 * 同步类型(1:不同步;2:同步)
	 * {@link AuthorityBaseApiTabulation#synchronizationType}
	 */
	public static final String COL_SYNCHRONIZATION_TYPE = "synchronization_type";
	/**
	 * 激活状态(1:未激活;2:已激活)
	 * {@link AuthorityBaseApiTabulation#activation}
	 */
	public static final String COL_ACTIVATION = "activation";

}
